package com.study.others.printOpe;

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

import org.junit.Test;

/**
* @Name: PrintWriterDemo
* @Description: 字符打印流测试类
* 继承关系：
* 	|-Writer
* 		|-PrintWriter
* @Author: 李超	lc_jack@foxmail.com
* @CreateDate: 2017-1-16 下午8:11:14 
* @Version: V1.0
 */
public class PrintWriterDemo {
	
	/**
	* @Name: test01
	* @Description: 作为Writer的子类使用
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-1-16 下午8:28:49
	* @Parameters: 
	* @Return: void
	 */
	@Test
	public void test01() throws IOException {
		//创建字符打印流对象
		PrintWriter pw = new PrintWriter("print.txt") ;
		//写数据，五种方式：写一个字符、写一个字符数组、写一个字符数组的一部分、写一个字符串、写一个字符串的一部分；
		//写一个字符
		char c = 97 ;
		pw.write(c) ;
		//写一个字符数组
		char[] buf = {'a', 'b', 'c', 'd', 'e'} ;
		pw.write(buf) ;
		//写一个字符数组的一部分
		pw.write(buf, 1, 3) ;
		//写一个字符串
		String data = "abcdef" ;
		pw.write(data) ;
		//写一个字符串的一部分
		pw.write(data, 1, 4) ;
		//释放资源，实现刷新
		pw.close() ;
 	}
	
	/**
	* @Name: test02
	* @Description: 操作任意数据类型
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-1-16 下午8:34:12
	* @Parameters: 
	* @Return: void
	 */
	@Test
	public void test02() throws IOException {
		//创建字符打印流对下岗
		PrintWriter pw = new PrintWriter("print.txt") ;
		//写数据
		//写一个整数
		pw.println(95) ;
		//写一个长整数
		pw.println(3242129l) ;
		//写一个浮点数
		pw.println(11.11F) ;
		//写一个布尔值
		pw.println(true) ;
		//写一个字符
		pw.println('a') ;
		//写一个字符数组
		pw.println(new char[] {'a', 'b', 'c', 'd', 'e'}) ;
		//写一个字符串
		pw.println("hello") ;
		//写一个自定义对象
		Student stu = new Student("张三", 21, "男") ;
		pw.println(stu) ;
		pw.close() ;
	}
	
	/**
	* @Name: test03
	* @Description: 开启自动刷新
	* 说明：如果启动了自动刷新，在调用 println方法将会刷新输出缓冲区；
	* 此时：
	* 	println() = write() + newLine() + flush()
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-1-16 下午8:44:33
	* @Parameters: 
	* @Return: void
	 */
	@Test
	public void test03() throws IOException {
		//创建字符打印流对象，并启动自动刷新
		PrintWriter pw = new PrintWriter(new FileWriter("print.txt"), true) ;
		//写数据
		pw.println("hello") ;
		pw.println("world") ;
		//释放资源
		pw.close() ;
	}

}















